The ability of software developers to develop software applications with complex and extensive features often exceeds an ability of a user to have knowledge of, and expertise in utilizing, such features. As a result, users may be aware that desired results are possible, but may be unable to generate the desired results. In other scenarios, users may not even be aware that desired results are obtainable.
Software developers typically attempt to mitigate such difficulties, e.g., by providing instructions for using the software applications being developed. In some cases, the instructions may be provided within a context of a relevant software application, such as by providing interactive instructions that appear within, and are generated by, the software application itself. Providing such instructions, however, is often difficult and time-consuming. Moreover, software applications may have uses that are developed over time by various users, which were not explicitly envisioned by the original software developers.
For these and other reasons, it is common for software applications, particulrly complex software applications, to be provided with tutorials that provide explanations and instructions for the software applications. For example, a third party may independently create a tutorial for a software application, and provide the tutorial to users of the software application to assist the users in utilizing the software application.
Such tutorials may take the form of static web pages, or instructional videos. Although the content of such tutorials may be highly useful and instructive, the form and structure of such tutorials may vary widely. Moreover, such tutorials are typically outside of a context of the relevant software application, requiring context switching between the tutorial and the application, and other associated inconveniences.